In multiple-access communication systems such as the bi-directional Hybrid Fiber Coax (HFC) cable system, multiple users communicate with a single central site or headend. In such systems, the headend typically receives bursts of transmissions from the users, and these transmissions are coordinated by the headend according to a Media Access Control (MAC) protocol, which prevents collisions and provides fair and equitable access to the upstream communication link from the users to the headend.
Typically, the channel in such systems is subject to various types of noise, in particular impulse noise, which is characteristically of short duration but has a strong magnitude and a wide spectrum footprint. In order to provide a reliable link, it is desirable to use forward error correction coding techniques, e.g., the Reed-Solomon (RS) code, which are known to support reliable impulse noise resistance. Furthermore, the impulse noise immunity may be multiplied by a factor of "I" without additional redundancy by using FEC coding in conjunction with interleaving, where "I" is referred to as the depth of interleaving.
However, in a burst transmission environment, particularly variable length burst transmission systems, a straightforward application of these error correction techniques will require precise end-of-burst detection and result in undesirable side effects such as extra delay and system complexity.
Firstly, the most often used impulse resistant FEC codes, such as RS code, are fixed length block codes. It is not trivial to implement such coding techniques for variable length burst transmission since it is undesirable to break a FEC code block across bursts due to delay considerations. It is known in the art that RS codes can be shortened to suit the length of burst on a burst by burst basis. However, this requires the receiver to determine the exact length of the burst before the decoding is completed. This requires expansive end-of-burst detection schemes at the cost of precious channel bandwidth and receiver complexity.
Secondly, interleaving requires a fair amount of delay. There are two types of well-known interleavers: block interleavers and convolutional interleavers. It is known that, when used with a rate (N,K) block code, i.e., "K" payload symbols in every length "N" code block, to achieve depth "I" interleaving, a block interleaver requires "N*I" symbol memory at the transmitter and the receiver and introduces total end-to-end delay of "2*N*I" symbols. On the other hand, a convolutional interleaver only requires "N*1/2" symbol memory at the transmitter and the receiver and the total end-to-end delay reduces to "N*I". This makes the convolutional interleaver attractive from the viewpoint of complexity and delay. However, with the convolutional interleaver, bursts of continuous input data symbols will map into overlapping segments of an interleaved data stream. This implies that one has to interleave across bursts, a very undesirable restriction. Alternatively, one has to deal with the initialization problem, i.e., how to fill the overlapping region with data symbols from the same burst. This seems impossible without introducing extra delay and/or compromising impulse noise resistance. In addition, it seems to be equally difficult for the convolutional interleaver to handle variation in burst length.
From a cost point of view, in a multiple access system, the subscriber transmitters are typically more cost-sensitive relative to the headend receiver since, in a typical system, there are many times more subscriber transmitters than there are head end receivers. Thus, it is desirable to keep the subscriber transmitter as non-complex as possible. Both types of interleavers, block or convolutional, require the same amount of memory at the transmitter and the receiver. Thus, neither the block interleaver nor the convolutional interleaver can take advantage of the uneven cost sensitivity in the multiple access systems. Hence, there is a need for a system, device and method for allowing end-of-burst detection while minimizing overall delay.